Application developers wanting to create software add-ons, plug-ins, or other extensions for a particular software package may be confronted with multiple platforms and object models associated with the software. For example, a software developer may distribute the software for use on multiple computing platforms and/or operating systems. For example, a software developer may create an extension for a PC version of the Microsoft Office family of products from Microsoft Corporation in Redmond, Wash. Users of another version of the Microsoft Office family of products may be unable to use the extension. In particular, because the operating systems and/or platforms may be distinct from one another, an extension authored for a particular platform may be incompatible with software executed on another platform.
Furthermore, when new versions of a particular software package are developed, some changes made to the software package may result in a loss of compatibility between the extension and the software package. For example, some aspects of a software object model may evolve between versions. As a result, developers may be compelled to create multiple versions of the extension for compatibility for new versions of software.
Some software suites, while related in some aspects, may include distinct application-specific object models. With regard to the Microsoft Office family of products, for example, the Microsoft Word word processing application has a first object model and set of APIs while the Microsoft Excel spreadsheet application has a second object model and set of APIs for use by developers. As such, developers may create various versions of a particular extension, even for related applications of software packages. The various versions of the extensions may use application-specific application programming interfaces (“APIs”) to interact with the application programs. Thus, even when developing extensions for related software or applications, application developers who have created an extension for one application platform may eventually recode the extension using another application-specific API for compatibility with other applications.
It is with respect to these and other considerations that the disclosure made herein is presented.